﻿
namespace Patterns4Net.ArchitectureExplorer.Diagram.Relations
{
    using Patterns4Net.Attributes.Relations;

    public class Uses : Relation
    {
        private Uses(
            DiagramElement source, 
            DiagramElement target, 
            Cardinality cardinality, 
            string name)
            : base(source, target, cardinality, name)
        {
        }

        private Uses(
            DiagramElement source, 
            DiagramElement target, 
            Cardinality targetCardinality, 
            Cardinality sourceCardinality, 
            string name)
            : base(source, target, targetCardinality, sourceCardinality, name)
        {
        }

        public static Uses CreateUnidirectional(DiagramElement source, DiagramElement target, string name = "")
        {
            return new Uses(source, target, Cardinality.None, string.Empty);
        }

        public static Uses CreateBidirectional(DiagramElement source, DiagramElement target, string name = "")
        {
            return new Uses(source, target, Cardinality.None, Cardinality.None, string.Empty);
        }

        public override object SourceArrow
        {
            get { return new UsesArrow(); }
        }

        public override object  TargetArrow
        {
            get { return new UsesArrow(); }
        }
    }

    public class UsesArrow
    {        
    }
}
